import { Toast } from 'vant'
import { dologin } from './../../api/user'
export default {
  // a开发者使用了 fn方法，b开发者也适用 fn 方法
  // 如果没有设置命名空间
  // a    fn
  // b    fn
  // 如果使用了命名空间
  // a    a/fn
  // b    b/fn
  namespaced: true, // 命名空间
  state: {
    isLogin: localStorage.getItem('isLogin') === 'true' || false
  },
  actions: {
    loginAction (context, params) {
      return new Promise((resolve) => {
        dologin({ // 登录
          loginname: params.loginname,
          password: params.password
        }).then(res => {
          if (res.data.code === '10010') {
            Toast('登录账户不存在')
          } else if (res.data.code === '10011') {
            Toast('密码错误')
          } else {
            console.log(res.data)
            Toast('登录成功')
            // 保存信息到本地
            // token 后端校验用户登录的凭证
            // userid 知道是那一个用户
            localStorage.setItem('isLogin', true) // 前端校验登录的方式
            localStorage.setItem('token', res.data.data.token)
            localStorage.setItem('userid', res.data.data.userid)
            // 修改状态管理器 --- 唯一修改状态的方式就是显示的提交mutations
            // actions中提交mutation 通过 context.commit
            context.commit('changeLoginState', true)
            // 这句话不在此处执行，应该回到组件中执行
            // this.$router.back()
            resolve()
          }
        })
      })
    }
  },
  mutations: {
    changeLoginState (state, data) {
      state.isLogin = data
    }
  }
}
